package com.ztgf.order.models.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ztgf.common.annotations.CustomerBigDecimalSerialize;
import com.ztgf.order.models.dto.OrderAfterShipDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * author: chenyu.wang
 * date: 2020-06-30 19:40
 * Description:售后订单退换货详情VO
 */
@Data
public class OrderReturnCommodityDetailsVO implements Serializable {

    @ApiModelProperty(value = "售后订单退换货表id")
    private Long id;
    @ApiModelProperty(value = "订单商品表id")
    private Long orderCommodityId;
    @ApiModelProperty(value = "订单id")
    private Long orderId;
    @ApiModelProperty(value = "买家店铺id")
    private Long buyersShopId;
    @ApiModelProperty(value = "卖家店铺id")
    private Long sellerShopId;
    @ApiModelProperty(value = "申请类型;0申请退货，1申请换货")
    private Integer type;
    @ApiModelProperty(value = "退换货原因;0质量问题，1真假掺售")
    private Integer returnReason;
    @ApiModelProperty(value = "售后状态;0未售后、1申请售后、2售后中、3售后完成")
    private Integer afterSalesState;
    @ApiModelProperty(value = "售后审核状态;0未审核、1审核中，2卖家同意、3卖家不同意")
    private Integer afterSalesAuditState;
    @ApiModelProperty(value = "平台介入状态;0未介入、1介入中、2协调、3买赢、4卖赢")
    private Integer interventionState;
    @ApiModelProperty(value = "介入买家状态;0未确定、1同意、2不同意")
    private Integer buyersState;
    @ApiModelProperty(value = "介入卖家状态;0未确定、1同意、2不同意")
    private Integer sellerState;
    @ApiModelProperty(value = "发货状态;0未发货、1待发货、2已发货、3已签收")
    private Integer shipState;
    @ApiModelProperty(value = "是否取消;0未取消，1已取消")
    private Integer isCancel;
    @ApiModelProperty(value = "是否退款;0不退款，1要退款")
    private Integer isRefund;
    @ApiModelProperty(value = "提交数量")
    private Integer subNumber;
    @ApiModelProperty(value = "订单创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;
    @ApiModelProperty(value = "订单编号")
    private String orderNo;
    @ApiModelProperty(value = "服务单号")
    private String serviceOrderNumber;
    @ApiModelProperty(value = "申请时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date serverTime;
    @ApiModelProperty(value = "退换货卖家地址区域id")
    private String afterSellerAreaId;
    @ApiModelProperty(value = "退换货卖家地址")
    private String afterSellerAddress;
    @ApiModelProperty(value = "退换货卖家联系电话")
    private String afterSellerPhone;
    @ApiModelProperty(value = "退换货卖家联系人")
    private String afterSellerUser;
    @ApiModelProperty(value = "卖家拒绝理由")
    private String sellerRefuseReason;
    @ApiModelProperty(value = "平台备注")
    private String platformRemarks;
    @ApiModelProperty(value = "问题描述")
    private String problemDescription;
    @ApiModelProperty(value = "凭证地址;上传凭证地址，用逗号隔开")
    private String certificateFile;
    @ApiModelProperty(value = "联系人")
    private String contactUser;
    @ApiModelProperty(value = "联系电话")
    private String contactPhone;
    @ApiModelProperty(value = "买家地址id")
    private Long buyersAddressId;
    @ApiModelProperty(value = "买家联系人")
    private String buyersUser;
    @ApiModelProperty(value = "买家收货地址")
    private String buyersAddress;
    @ApiModelProperty(value = "买家收货联系人电话")
    private String buyersMobile;
    @ApiModelProperty(value = "买家区域id")
    private Long buyersAredId;
    @ApiModelProperty(value = "退款金额")
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal refundPrice;
    @ApiModelProperty(value = "卖家店铺名称")
    private String sellerShopName;
    @ApiModelProperty(value = "买家名称")
    private String buyersName;
    @ApiModelProperty(value = "倒计时")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expirationTime;
    @ApiModelProperty(value = "商品id")
    private Long goodsId;
    @ApiModelProperty(value = "是否延长,0否、1是")
    private Integer isExtend;
    @ApiModelProperty(value = "售后日志")
    private List<OrderAfterSaleLogMsgVO> logList;
    @ApiModelProperty(value = "平台协调状态:0未协调,1买赢,2卖赢")
    private Integer consortState;
    @ApiModelProperty(value = "平台协调备注")
    private String consortRemarks;
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @ApiModelProperty(value = "发货列表")
    List<OrderAfterShipDTO> shipList;

}
